﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
namespace Prueba
{
    class DAOLotes
    {
        public static OleDbConnection conectarExcel()
        {
            OleDbConnection con;
            try
            {

                String file = Application.StartupPath + @"\Datos Lotes\Coordenadas.xlsx";
                con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file +";Extended Properties=Excel 12.0 Xml;");

            }
            catch (Exception)
            {
                con = null;
                MessageBox.Show("Error de Conexión!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return con;
        }
        public static DataSet leerCoordenadas()
        {
            DataSet ds = new DataSet();
            OleDbConnection con = conectarExcel();
            try
            {
                con.Open();
                OleDbDataAdapter adaptador = new OleDbDataAdapter("SELECT * FROM [Coordenadas$]", con);
                adaptador.Fill(ds, "tablaCoordenadas");
                con.Close();
                con.Dispose();
            }
            catch (Exception)
            {
                ds = null;
                
            }
            finally
            {
                con.Close();
                con.Dispose();
            }

            return ds;
        }

        public static Boolean saveLote(String campo, String lote, Double latitud, Double longitud, Double area, Double humedad, DateTime fecha, String estado)
        {
            Boolean ingresado = false;
            OleDbConnection con = conectarExcel();
            con.Open();
            try
           {
            
                string insertar = @"Insert into [Coordenadas$] (Campo, Lote, Latitud, Longitud, Area_Radio, Humedad, Ultimo_Control, Estado )" +
                    "VALUES('" + campo + "','" + lote + "'," + latitud +"," + longitud +","+ area +"," + humedad +",'" + fecha +"','" + estado + "')";
              
                
                OleDbDataAdapter adaptador = new OleDbDataAdapter(insertar,con);
                adaptador.SelectCommand.ExecuteNonQuery();
                adaptador.Dispose();
                con.Close();
                con.Dispose();
                ingresado = true;
            }
            catch
            {
                ingresado = false;
            }
            finally
            {
                con.Close();
                con.Dispose();
            }

            return ingresado;
        }

        public static Boolean updateLote(String campo, String lote, Double latitud, Double longitud, Double area, Double humedad, DateTime fecha, String estado, String loteModificado)
        {
            Boolean modificado = false;
            OleDbConnection con = conectarExcel();
            con.Open();
            try
            {

                string modificar = @"Update [Coordenadas$] Set Campo = '" + campo 
                    + "',Lote = '" + lote + "',Latitud = " + latitud + ",Longitud = " + longitud + ",Area_Radio = " + area + ", Humedad = " + humedad
                    + ",Ultimo_Control = '" + fecha + "',Estado = '" + estado + "' Where Lote = '" + loteModificado + "'";


                OleDbDataAdapter adaptador = new OleDbDataAdapter(modificar, con);
                adaptador.SelectCommand.ExecuteNonQuery();
                adaptador.Dispose();
                con.Close();
                con.Dispose();
                modificado = true;
            }
            catch
            {
                modificado = false;
            }
            finally
            {
                con.Close();
                con.Dispose();
            }

            return modificado;
        }

    }
}
